package com.xyj.collection;

import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;

/**
 * @author GuXiaoYao
 * @version 1.0.0
 * @since 2021/8/31
 */
public class ListTest {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>(10);

        // todo 在添加元素时会判断需不需要扩容，如果目前容量小于10，扩容时会直接扩容到10
        //  如果当前容量大于10之后的每次扩容，会扩容到当前的3/2倍  最大容量时Integer的最大值
        list.add("22");
        list.add("22");
        list.add("22");
        list.add("22");
        list.add("22");
        list.add("22");
        list.add("22");
        list.add("22");
        list.add("22");
        list.add("22");
        // 扩容
        list.add("22");
        list.add("22");
        List<String> copyOnWriteArrayList=new CopyOnWriteArrayList<>();
        copyOnWriteArrayList.add("xiaoyaojun");
        //并发场景下可以使用读分离的List
        //只对于写的场景加锁---写时复制，每次都开辟一个新的数组空间，新增后直接将引用指向新数组。
        //避免了频繁扩容。
        Set<Object> objects = Collections.synchronizedSet(new HashSet<>());
        objects.add(21);
        int s=10;
        System.out.print(s>>1);
        System.out.println();

    }
}
